package paquetes.interfazRemota;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;

import paquetes.negocioVO.*;


public interface PuntoDeVentaController extends Remote{
	
	public ClienteVO buscarCliente(String doc) throws RemoteException ;
	public void altaCliente(String tipo,String nombre,String documento,String telefonocontacto,DomicilioVO domicilio) throws RemoteException;
	public List<ClienteVO> obtenerClientes() throws RemoteException;
	public void modificarCliente(int id,String tipo,String nombre,String documento,String telefonocontacto,DomicilioVO domicilio) throws RemoteException;
	public void bajaCliente(int id) throws RemoteException;
	public ClienteVO editarCliente(ClienteVO c) throws RemoteException;
	public List<ServicioAdicionalVO> listarServiciosAdicionales() throws RemoteException;
	public List<ServicioAdicionalVO> obtenerServiciosAdicionalesDePedido(PedidoVO p) throws RemoteException;
	public List<SucursalVO> listarSucursales() throws RemoteException;
    public List<SucursalVO> obtenerSucursales(PedidoVO p) throws RemoteException;
	public List<HojaDeRutaVO> listarHojasDeRuta(int idSuc) throws RemoteException;
	public List<HojaDeRutaVO> obtenerHojasDeRuta(PedidoVO p) throws RemoteException;
	public PedidoVO precalcularPedidoClienteRegular(PedidoVO p) throws RemoteException;
	public PedidoVO precalcularPedidoClienteEventual(PedidoVO p) throws RemoteException;
	public PedidoVO buscarPedido(long id) throws RemoteException;
	public FacturaVO confirmarPedido(PedidoVO p) throws RemoteException;
	public FacturaVO buscarFactura(long f) throws RemoteException;
	public void abonarFactura(FacturaVO f,MedioPagoFactura m) throws RemoteException;
	public List<ClienteVO> listarClientesConDeuda() throws RemoteException; 
	public void depositarCuentaCorriente(int idCli,int importe) throws RemoteException;
	public ListaDePrecioVO obtenerListaDePrecioVigente(PedidoVO p) throws RemoteException;
	public List<FacturaVO> getFacturas() throws RemoteException;
	public void generarFactura(PedidoVO p) throws RemoteException;
	public List<ProductoVO> obtenerProductos() throws RemoteException;
	public void AltaDeProducto(String descripcion, int dimensionX, int dimensionY, int dimensionZ,String fragilidad, String peligrosidad, int refrigeracion, int apilable) throws RemoteException;
	public ProductoVO obtenerProducto(int id) throws RemoteException;	
	public void editarProducto(String descripcion, int dimensionX,
            int dimensionY, int dimensionZ, int fragilidad,
            int peligrosidad, int refrigeracion, int apilable) throws RemoteException;
	public void bajaProducto(int id) throws RemoteException;	
	public void AltaDeReceptor(String nombre, String apellido, String documento) throws RemoteException;
	public void AltaDeServicioAdicional(String descripcion) throws RemoteException;
	public void AltaDeManifiesto(byte[] escaneo, String tipoFragilidad,
			String tipoPeligrosidad, int dimensionX, int dimensionY,
			int dimensionZ, int refrigeracion, String indicaciones)throws RemoteException;
	public List<ReceptorAutorizadoVO> obtenerReceptoresAutorizados() throws RemoteException;
	public ReceptorAutorizadoVO obtenerReceptorAutorizado(int id) throws RemoteException;
	public ServicioAdicionalVO obtenerServicioAdicional(int id)throws RemoteException;
}
